The present invention relates to microservices, and in particular, to tools for discovering and integrating microservices.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
A “service” may be generally defined as any resource that is provided over a computer network such as the Internet. Services may also be referred to as cloud services. The most common cloud service resources are Software as a Service (SaaS), Platform as a Service (PaaS) and Infrastructure as a Service (IaaS).
SaaS is a software distribution model in which applications are hosted by a vendor or service provider and made available to customers over a network, typically the Internet. PaaS refers to the delivery of operating systems and associated services over the Internet without downloads or installation. IaaS involves outsourcing the equipment used to support operations, including storage, hardware, servers and networking components, all of which are made accessible over a network.
A “microservice” is a type of service. The microservice architectural style is an approach to developing a single application as a suite of small microservices, each running in its own process and communicating with lightweight mechanisms, often an HTTP (hypertext transfer protocol) resource API (application programming interface). These microservices may be built around feature capabilities and independently deployable by fully automated deployment machinery. There need only be a bare minimum of centralized management of these microservices, which may be written in different programming languages and use different data storage technologies.
There is no standard or official comparison or differentiator between a service and a microservice. The differences are subjective. Different organizations or researchers have various opinions about the size, performance, and structure of services versus microservices.
In the context of the present document, a service is any resource offered in the cloud. Hence microservices are also cloud services, but generally smaller in size, are independently manageable, and solve one purpose. But the reverse is not always true: All services are not microservices.
For example, HCP (Hana cloud platform) is a PaaS from SAP. It is a cloud service, under the category of PaaS. At the same time, there are various services that exist on HCP (e.g., a monitoring service, etc.), which can be accessed through API calls and are light weight and are capable of performing a well-defined specific job. So these are micro services.
Organizations have various implementation strategies for microservices according to their needs. There are no standard definitions about the size or lines of code for a microservice. However, it is accepted that microservices are designed to manage a specific feature requirement (the size of the feature requirement varies from organization to organization).
In summary, microservices are a cloud based feature for building cloud applications easily. These are reusable self-contained entities which help to improve the development, maintenance and lifecycle of a cloud application more effectively. The traditional way to use microservices is to use a textual interface to write textual computer programs that use the microservice.